// pages/car/car.js
var app = getApp()
import {hotdata,carapi,editcarapi,addcarapi,appnavapi} from "../../utils/api"
import utils from "../../utils/util"
Page({

    /**
     * 页面的初始数据
     */
    data: {
        hot:{},//热门推荐的数据
        openid:"",
        name:"",//店铺的名字
        deldata:true ,//购物车管理的状态
        car:[],
        selectall:false,//全选的状态
        num:0,//商品选中的数量
        totalprice:"0.00"//总价
    },
    /**
     * 生命周期函数--监听页面加载
     */
   async onLoad(options) {
        this.setData({
            openid:wx.getStorageSync('openid')
        })
        const res =await appnavapi()
        var arr = res.data.data
        if (res.data.code==200) {
            for (let i = 0; i < arr.foot_navs.length; i++) {
                arr.foot_navs[i].active = true
            }
            app.globalData.tabBar = arr
            
            if(wx.getStorageSync('openid')!=""){
                this.hot()
                this.car()
            }
        } else {
            utils.wxshowtoast("数据请求失败")
        }
        app.editTabBar()
        
    },
    // 去逛逛
    geturl(){
        wx.reLaunch({
            url: "/pages/index/index"
        })
    },
    // 热门推荐的商品
    async hot(){
        const res = await hotdata()
        if (res.data.code == 200) {
            console.log(res.data.data);
            wx.hideLoading()
            this.setData({
                hot: res.data.data
            })
        } else {
            wx.hideLoading()
            utils.wxshowtoast("数据请求失败")
            this.setData({
                hot: {}
            })
        }
    },
    // 购物车的数据
    async car(){
        const res = await carapi()
        console.log(res.data.data);
        if (res.data.code == 200) {
            wx.hideLoading()
            var array = res.data.data.data
            
            if(array.length!=0){
                for (let i = 0; i < array.length; i++) {
                   array[i].checked = false;
                }
            }
            console.log(array);
            this.setData({
                name:res.data.data.mch.mch_name,
                car: array
            })
        } else {
            wx.hideLoading()
            utils.wxshowtoast("数据请求失败")
            this.setData({
                car: {}
            })
        }
    },
    // 商品全选
    selectall(){
        var list = this.data.car
        var num = this.data.num
        for (let i = 0; i < list.length; i++) {
            list[i].checked = !this.data.selectall
        }
        if(!this.data.selectall){
            num = list.length
        }else{
            num = 0
        }
        this.setData({
            num:num,
            selectall:!this.data.selectall,
            car:list
        })
        this.totalprice()
    },
    // 商品单选择
    select(e){
        var list = this.data.car
        var index = e.currentTarget.dataset.index
        var num =this.data.num
        list[index].checked = ! list[index].checked
        // 全选中
        list[index].checked ? num++ : num--;
        console.log(num);
        if(num==list.length){
            this.setData({
                selectall:true
            })
        }else{
            this.setData({
                selectall:false
            })
        }
        this.setData({
            car:list,
            num:num
        })
        this.totalprice()
        console.log(this.data.car);
    },
    // 计算价格
    totalprice(){
        var list = this.data.car 
        var total = 0
        for (let i = 0; i < list.length; i++) {
            if(list[i].checked){
                total+= list[i].goods_sku_price*list[i].car_num
            }
        }
        this.setData({
            totalprice:total.toFixed(2)
        })
    },
    // 商品的减少
   async reduce(e){
        var index = e.currentTarget.dataset.index
        var list = this.data.car
        var num = list[index].car_num
        num--
        if(num < 1){
            utils.wxshowtoast("数量不能小于1")
            return
        }
        list[index].car_num = num
        let data = {
            id:list[index].car_id,
            goods_id:list[index].goods_id,//商品的idgoods_id
            car_num:num,//购买的数量car_num
            sku_id:list[index].sku_id,
        }
        const res  = await addcarapi(data)
        if(res.data.code == 200){
            wx.hideLoading()
            this.setData({
              car:list
            })
            this.totalprice()
        }else{
            utils.wxshowtoast(res.data.msg)
            wx.hideLoading()
        }
    },
    // 商品的增加
   async add(e){
        console.log(e.currentTarget.dataset.index);
        var index = e.currentTarget.dataset.index
        var list = this.data.car
        var num = list[index].car_num
        num++
        list[index].car_num = num
        let data = {
            id:list[index].car_id,
            goods_id:list[index].goods_id,//商品的idgoods_id
            car_num:num,//购买的数量car_num
            sku_id:list[index].sku_id,
        }
        const res  = await addcarapi(data)
        if(res.data.code == 200){
            wx.hideLoading()
            this.setData({
              car:list
            })
            this.totalprice()
        }else{
            utils.wxshowtoast(res.data.msg)
            wx.hideLoading()
        }
        console.log(res);
    },
    //删除购物车
    async cardel(){
        var list = this.data.car
        var ids = ""
        // 拼接字符串
        for (let i = 0; i < list.length; i++) {
            if(list[i].checked){
                ids= ids + list[i].sku_id +","
            }
        }
        // 删除字符串最后的逗号
        ids= ids.substring(0,ids.length-1);
        if(!ids){
            utils.wxshowtoast("请选择删除的商品")
            return
        }
        console.log(ids);
        const res = await editcarapi({ids:ids})
        console.log(res);
        if(res.data.code == 200){
            this.setData({
                totalprice:0,//把总价变成0
                deldata:!this.data.deldata,//退出管理
                num:0
            })
            wx.hideLoading()
            this.onLoad()
        }else{
            wx.hideLoading()
            utils.wxshowtoast("删除的商品失败")
        }
    },
    //管理购物车
    carmanage(){
        this.setData({
            deldata:!this.data.deldata
        })
    },
    // 结算
    orderbtn(){
        if(this.data.num<1){
            utils.wxshowtoast("请添加购买商品")
            return
        }
        var list = this.data.car
        var order = {
            goods_sku_id:"",
            goods_num:""
        }
        // 把商品的规格id和商品数量拼成字符串
        for (let i = 0; i < list.length; i++) {
            if(list[i].checked){
                order.goods_sku_id= order.goods_sku_id + list[i].sku_id +",";
                order.goods_num= order.goods_num + list[i].car_num +","
            }
        }
        // 删除字符串最后的逗号
        order.goods_sku_id= order.goods_sku_id.substring(0,order.goods_sku_id.length-1);
        order.goods_num= order.goods_num.substring(0,order.goods_num.length-1);
        console.log(order);
        wx.navigateTo({
            url: "/pages/order/order?order=" + JSON.stringify(order)
        })
    },
    // 未登录去登陆
    login(){
        wx.navigateTo({
            url: "/pages/login/login"
        })
    },
    // 商品详情页
    detail(e){
        console.log(e.currentTarget.dataset.path,e.currentTarget.dataset.id);
        if(e.currentTarget.dataset.path){
            wx.navigateToMiniProgram({
                appId: 'wx32540bd863b27570',
                path: e.currentTarget.dataset.path 
            })
        }else{
            wx.navigateTo({
				url: "/pages/detail/detail?id="+e.currentTarget.dataset.id
			})
        }
    },
    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        this.onLoad()
        this.setData({
            selectall:false,
            num:0,
            totalprice:"0.00"
        })
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})